package middleware

import (
	"github.com/go-playground/validator/v10"
	"regexp"
	"unicode"
)

func ValidateName(fl validator.FieldLevel) bool {
	name := fl.Field().String()
	//名字判断，不允许为数字
	for _, r := range name {
		if !unicode.Is(unicode.Han, r) && !unicode.IsLetter(r) {
			return false
		}
	}
	return true
}

// ValidatePassword 自定义验证器函数，验证密码必须是6-12位，包含字母和数字
func ValidatePassword(fl validator.FieldLevel) bool {
	password := fl.Field().String()
	//定义密码长度
	if len(password) < 6 || len(password) > 12 {
		return false
	}
	//密码组成 数字+字母
	if m, _ := regexp.MatchString(`^[0-9a-zA-Z]+$`, password); !m {
		return false
	}
	if m, _ := regexp.MatchString(`^[0-9]+$`, password); m {
		return false
	}
	if m, _ := regexp.MatchString(`^[a-zA-Z]+$`, password); m {
		return false
	}
	return true
}
func RoleValidate(f1 validator.FieldLevel) bool {
	role := f1.Field().Interface().(int)
	return role == 1 || role == 2
}
